Process control systems, like those used in chemical, petroleum or other processes, typically include one or more centralized process controllers communicatively coupled to at least one host or operator workstation and to one or more field devices via analog, digital or combined analog/digital buses. The field devices, which may be, for example, device controllers, valves, valve positioners, switches and transmitters (e.g., temperature, pressure and flow rate sensors), perform functions within the process control system such as opening or closing valves and measuring process parameters. A central process controller receives signals indicative of process measurements made by the field devices and/or other information pertaining to the field devices, uses this information to implement a control routine, and generates control signals that are sent over the buses or other communication lines to the field devices to control the operation of the process control system.
Recently, the process control industry has moved toward the use of digital control and communications between field devices, controllers, and other entities making up a process control system. As a part of this move toward digital control and communications, a number of standard digital as well as combined analog and digital open communication protocols have been developed to facilitate the interoperation field devices and controllers. For example, communication protocols such as HART®, PROFIBUS, WORLDFIP, Device-Net, CAN™, and FOUNDATION Fieldbus (“Fieldbus”) are now widely used to enable faster and more information-rich communications between field devices and controllers. Specifically, in addition to control parameters and other control-related information or data, the above-mentioned communication protocols may enable, for example, configuration information, as well as other types of information, to be communicated between field devices and between field devices and controllers. Further, the standardization and open nature (i.e., non-proprietary nature) of the standards associated with these communication protocols enables devices made by different manufacturers to be readily integrated within a single process control system, thereby simplifying replacement of devices, enabling a more optimal selection of field devices to implement a particular application, etc.
Many of the above-mentioned digital or combined analog and digital communication protocols facilitate the implementation of distributed control schemes. In particular, these communication protocols often provide a framework or architecture that enables field devices to interoperate directly with one another to perform a process control application or a part of a process control application without the required intervention of a centralized process controller. Such decentralization of the control execution can simplify the design of process control routines, reduce communications and processing overhead associated with a central controller, improve the speed at which information is received by devices needing the information and, thus, the ability of the receiving devices to take appropriate action more quickly based on the received information, etc.
Some of the digital and combined analog and digital communication protocols that facilitate distributed control utilize a basic building block or software construct commonly referred to as a function block. In general, function blocks may be (but are not necessarily) generated using a high level computer language (e.g., C, C++, etc.) that, when executed (e.g., via a processor) perform one or more algorithms or sequences of operations. There are multiple types of function blocks, where each type of function block typically implements a specific part or portion of a process control routine. Generally, function blocks implement input, control, output, as well as other functions within a process control system and can be downloaded and instantiated within controllers and/or field devices distributed throughout a process control system. For example, an analog input (AI) function block may be instantiated within a sensor or transmitter configured to measure a process parameter (e.g., a temperature, a flow, etc.), a proportional-integral-derivative (PID) function block may be instantiated within a controller, which may be in communication with the sensor or transmitter performing the AI function block, an analog output (AO) function block may be instantiated within another field device such as a valve that is responsive to the controller and which affects one or more parameters measured by the AI function block. Thus, in this manner, function blocks of different types can be instantiated within field devices and controllers and interlinked via communications along a data bus, network, or other communication media to perform control loop functions and/or any other desired functions of a process control scheme.
Historically, function blocks have been generally static in nature and, thus, once configured and instantiated within a controller or other process control device, the behavior of or the operations performed by the blocks could not be easily changed. As a result, when upgrading, enhancing, or otherwise changing the operation of a function block, a new function block typically had to be created. To install and use a new function block within a process control system, the process control system, or at least a part thereof, typically had to be taken off-line and reconfigured (e.g., the new function block had to be compiled and downloaded to a controller, field device(s), etc.). Further, in cases where function blocks can include enhancements or capabilities that are not needed, used infrequently, or only temporarily needed in a process control application, it is generally not efficient (e.g., in terms of system resources such as, memory, processor utilization, etc.) to statically instantiate function blocks containing all possible enhancements or capabilities, regardless of whether those enhancements or capabilities are actually needed or how frequently those enhancements or capabilities are used by the devices in which the function blocks are stored and/or instantiated and executed.